package pe.com.upc.edu.rtt.ultimoseventosfutbolisticos.service.impl;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Service;

import pe.com.upc.edu.rtt.EventoDeportivo;
import pe.com.upc.edu.rtt.EventoServicesSoapProxy;
import pe.com.upc.edu.rtt.ultimoseventosfutbolisticos.bean.PartidoBean;
import pe.com.upc.edu.rtt.ultimoseventosfutbolisticos.service.ConsultarPartidosService;

import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;

@Service("ConsultarPartidosService")
public class ConsultarPartidosServiceImpl implements ConsultarPartidosService {

	private static final Log _log = LogFactoryUtil.getLog(ConsultarPartidosServiceImpl.class);
	private static EventoServicesSoapProxy proxyEventoServices = new EventoServicesSoapProxy();

	@Override
	public List<PartidoBean> obtenerListaPartidos() {
		try {
			EventoDeportivo[] lsitaEvnetos = proxyEventoServices.getListarUltimosEventos(10);
			
			if ((lsitaEvnetos != null) && (lsitaEvnetos.length > 0)) {
				List<PartidoBean> listaPartidos = new ArrayList<PartidoBean>();
				EventoDeportivo eventoDeportivo = null;
				PartidoBean partidoBean = null;

				for (int i = 0; i < lsitaEvnetos.length; i++) {
					eventoDeportivo = lsitaEvnetos[i];
					partidoBean = new PartidoBean();
					partidoBean.setIdPartido(eventoDeportivo.getIdEvento());
					partidoBean.setTitulo(eventoDeportivo.getDescripcion());
					partidoBean.setFechapartido(eventoDeportivo.getFechaInicio());
					partidoBean.setFechapartidofin(eventoDeportivo.getFechaFinEvent());
					partidoBean.setCantidadEntradas(eventoDeportivo.getLimiteEntradas());
					partidoBean.setPrecio(eventoDeportivo.getPrecioEntrada());
					listaPartidos.add(partidoBean);
				}
				return listaPartidos;
			}
		} catch (RemoteException e) {
			//e.printStackTrace();
			_log.error("Error de conexion al servicio web "+e.getMessage() + "  " + e.getLocalizedMessage(),e);
		}
		return null;
	}

}
